package store.lunangangster.nodeflow.builder.entity;

import store.lunangangster.nodeflow.core.component.NodeComponent;
import store.lunangangster.nodeflow.enums.NodeType;

/**
 * 用于Node的数据传递类
 *
 * @author cwk
 * @version 1.0
 */
public class NodeProp {
	private String id;

	private String className;

	private Class<?> clazz;

	private NodeType type;

	private NodeComponent nodeComponent;

	/**
	 * 空的构造函数
	 */
	public NodeProp() {
	}

	/**
	 * 获取id
	 * @return	nodeId
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置id
	 * @param id	nodeId
	 * @return	NodeProp对象
	 */
	public NodeProp setId(String id) {
		this.id = id;
		return this;
	}

	/**
	 * 获取其NodeComponent对应Class的className
	 * @return	className
	 */
	public String getClassName() {
		return className;
	}

	/**
	 * 设置其NodeComponent对应Class的className
	 * @param className	className
	 * @return	NodeProp对象
	 */
	public NodeProp setClassName(String className) {
		this.className = className;
		return this;
	}

	/**
	 * 获取其NodeComponent对应的Class
	 * @return	Class
	 */
	public Class<?> getClazz() {
		return clazz;
	}

	/**
	 * 设置其NodeComponent赌赢的Class
	 * @param clazz	Class
	 * @return	NodeProp对象
	 */
	public NodeProp setClazz(Class<?> clazz) {
		this.clazz = clazz;
		return this;
	}

	/**
	 * 获取其对应的NodeType
	 * @return	NodeType对象
	 */
	public NodeType getType() {
		return type;
	}

	/**
	 * 设置其对应的NodeType
	 * @param type	NodeType对象
	 * @return	NodeProp对象
	 */
	public NodeProp setType(NodeType type) {
		this.type = type;
		return this;
	}

	/**
	 * 获取其对应的NodeComponent
	 * @return	NodeComponent对象
	 */
	public NodeComponent getNodeComponent() {
		return nodeComponent;
	}

	/**
	 * 设置其对应的NodeComponent
	 * @param nodeComponent	NodeComponent对象
	 * @return	NodeProp对象
	 */
	public NodeProp setNodeComponent(NodeComponent nodeComponent) {
		this.nodeComponent = nodeComponent;
		return this;
	}
}
